﻿/**
 *
 * @file GlobalFiles.h
 * @brief 文件相关的python接口
 * @author LiBaojun (libaojunqd@foxmail.com)
 * @date 2024-06-18
 *
 */
#ifndef __PYTHONINTERFACE_GLOBALFILES_H___
#define __PYTHONINTERFACE_GLOBALFILES_H___

#include <QString>
#include <QObject>
#include "PythonInterfaceAPI.h"

class Files;

/**
 * @brief 文件相关PYTHON接口装饰
 * @author LiBaojun (libaojunqd@foxmail.com)
 * @date 2024-06-18
 */
class PythonInterfaceAPI FilesWapper : public QObject
{
    Q_OBJECT
public slots:
    /**
     * @brief 创建对象
     * @return Files*
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-06-18
     */
    Files* new_Files();
    /**
     * @brief 删除对象
     * @param[i]  F              装饰器创建的对象
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-06-18
     */
    void delete_Files(Files* F);
    /**
     * @brief 导入BDF文件
     * @param[i]  fileName       文件名
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-06-18
     */
    void static_Files_ImportBDFFile(const QString& fileName);
    /**
     * @brief 导出BDF文件
     * @param[i]  fileName       文件名
     * @author wangning (2185896382@qq.com)
     * @date 2025-03-06
     */
    void static_Files_ExportBDFFile(const QString& fileName);
    /**
     * @brief 导入XML文件
     * @param[i]  fileName       文件名
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-06-18
     */
    void static_Files_ImportXMLFile(const QString& fileName);
    /**
     * @brief 导出XML文件
     * @param[i]  fileName       文件名
     * @author wangning (2185896382@qq.com)
     * @date 2025-03-06
     */
    void static_Files_ExportXMLFile(const QString& fileName);
    /**
     * @brief 导入几何文件
     * @param[i]  fileName       文件名
     * @author LiBaojun (libaojunqd@foxmail.com)
     * @date 2024-06-18
     */
    void static_Files_ImportGeoFile(const QString& fileName);
    /**
    * @brief 导出几何文件
    * @param[i]  fileName       文件名
    * @author wangning (2185896382@qq.com)
    * @date 2025-03-06
    */
    void static_Files_ExportGeoFile(const QString& fileName);
    /**
    * @brief 导入工程文件
    * @param[i]  fileName       文件名
    * @author wangning (2185896382@qq.com)
    * @date 2025-03-05
    */
    void static_Files_ImportHDF5File(const QString& fileName);
    /**
     * @brief 导入CSV文件
     * @param[i]  fileName       文件名
     * @author wangning (2185896382@qq.com)
     * @date 2025-03-05
     */
    void static_Files_ImportCSVFile(const QString& fileName);
    /**
     * @brief 新建文件
     * @param[i]  fileName       文件名
     * @author wangning (2185896382@qq.com)
     * @date 2025-03-06
     */
    void static_Files_NewFile(const QString & fileName);
    /**
    * @brief 保存文件(Save与SaveAs共用这个函数)
    * @param[i]  fileName       文件名
    * @author wangning (2185896382@qq.com)
    * @date 2025-03-06
    */
    void static_Files_SaveFile(const QString & fileName);

private:
    /**
    * @brief 等待线程池
    * @author wangning (2185896382@qq.com)
    * @date 2024-11-25
    */
    void initSleep();
};

/**
 * @brief 文件接口封装，供装饰器装饰
 * @author LiBaojun (libaojunqd@foxmail.com)
 * @date 2024-06-18
 */
class Files
{
public:
    explicit Files() = default;
    virtual ~Files() = default;
   
};


#endif
